/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Servicios;

import Biblioteca.*;
import java.util.ArrayList;
import java.sql.*;

/**
 *
 * @author pablo.montero
 */
public class MapeoObjetos implements IMapeoObjetos {

    ConexionDB conexion;

    public MapeoObjetos() {
        conexion = new ConexionDB();
    }

    public ArrayList<Usua> getUsua() {
        ArrayList<Usua> ListUsua = new ArrayList<Usua>();
        try {
            ResultSet re = null;
            re = conexion.getUsua();
            Usua u = new Usua();
            while (re.next()) {
                u.id = re.getString("id");
                u.nom = re.getString("nom");
                u.ape = re.getString("ape");
                u.ape2 = re.getString("ape2");
                ListUsua.add(u);
                u = new Usua();
            }
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return ListUsua;
    }
    public ArrayList<Usua> getUsua(String id) {
        ArrayList<Usua> ListUsua = new ArrayList<Usua>();
        try {
            ResultSet re = null;
            re = conexion.getUsua(id);
            Usua u = new Usua();
            while (re.next()) {

                u.id = re.getString("id");
                u.nom = re.getString("nom");
                u.ape = re.getString("ape");
                u.ape2 = re.getString("ape2");
                ListUsua.add(u);
                u = new Usua();
            }
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return ListUsua;
    }
    public boolean InsertUsua(String id, String nom, String ape, String ape2) {
        boolean r = false;
        try {
            r = conexion.insertUsua(id, nom, ape, ape2);
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return r;
    }
    public boolean UpdateUsua(String id, String nom, String ape, String ape2) {
        boolean r = false;
        try {
            r = conexion.updateUsua(id, nom, ape, ape2);
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return r;
    }
    public boolean DeleteUsua(String id) {
        boolean r = false;
        try {
            r = conexion.deleteUsua(id);
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return r;
    }

    public ArrayList<Peli> getPeli() {
        ArrayList<Peli> ListPeli = new ArrayList<Peli>();
        try {
            ResultSet re = null;
            re = conexion.getPeli();
            Peli p = new Peli();
            while (re.next()) {
                p.id = re.getString("id");
                p.nom = re.getString("nom");
                p.ano = re.getString("ano");
                p.cantTotalPelis = re.getInt("cantTotalPelis");
                ListPeli.add(p);
                p = new Peli();
            }
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return ListPeli;
    }
    public ArrayList<Peli> getPeli(String id) {
        ArrayList<Peli> ListPeli = new ArrayList<Peli>();
        try {
            ResultSet re = null;
            re = conexion.getPeli(id);
            Peli p = new Peli();
            while (re.next()) {

                p.id = re.getString("id");
                p.nom = re.getString("nom");
                p.ano = re.getString("ano");
                p.cantTotalPelis = re.getInt("cantTotalPelis");
                ListPeli.add(p);
                p = new Peli();
            }
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return ListPeli;
    }
    public boolean InsertPeli(String id, String nom, String ano, int cantTotalPelis) {
        boolean r = false;
        try {
            r = conexion.insertPeli(id, nom, ano, cantTotalPelis);
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return r;
    }
    public boolean UpdatePeli(String id, String nom, String ano, int cantTotalPelis) {
        boolean r = false;
        try {
            r = conexion.updatePeli(id, nom, ano, cantTotalPelis);
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return r;
    }
    public boolean DeletePeli(String id) {
        boolean r = false;
        try {
            r = conexion.deletePeli(id);
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return r;
    }

    public ArrayList<peliAquiladas> getpeliAquiladas(String id_usua) {
        ArrayList<peliAquiladas> ListPelisAlquiladas = new ArrayList<peliAquiladas>();
        try {
            ResultSet re = null;
            re = conexion.getPeliAlqui(id_usua);
            peliAquiladas pA = new peliAquiladas();
            while (re.next()) {
                pA.id = re.getInt("id");
                pA.id_usua = re.getString("id_usua");
                pA.nom_usua = SM.findNomUsua(pA.id_usua);
                pA.id_peli = re.getString("id_peli");
                pA.nom_peli = SM.findNomPeli(pA.id_peli);
                pA.cantAlquiPelis = re.getInt("cantAlquiPelis");
                pA.cantPeliTotal = SM.findCantTotalPelis(pA.id_peli);
                pA.fechaAlqui = re.getDate("fechaAlqui");
                pA.fechaDevuelt = re.getDate("fechaDevuelt");
                pA.diasAlqui = re.getInt("diasAlqui");                
                ListPelisAlquiladas.add(pA);
                pA = new peliAquiladas();
            }
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return ListPelisAlquiladas;
    }
    public ArrayList<peliAquiladas> getpeliAquiladas(String id_Peli, int i) {
        ArrayList<peliAquiladas> ListPelisAlquiladas = new ArrayList<peliAquiladas>();
        try {
            ResultSet re = null;
            re = conexion.getPeliAlqui(id_Peli,i);
            peliAquiladas pA = new peliAquiladas();
            while (re.next()) {
                pA.id = re.getInt("id");
                pA.id_usua = re.getString("id_usua");
                pA.nom_usua = SM.findNomUsua(pA.id_usua);
                pA.id_peli = re.getString("id_peli");
                pA.nom_peli = SM.findNomPeli(pA.id_peli);
                pA.cantAlquiPelis = re.getInt("cantAlquiPelis");
                pA.cantPeliTotal = SM.findCantTotalPelis(pA.id_peli);
                pA.fechaAlqui = re.getDate("fechaAlqui");
                pA.diasAlqui = re.getInt("diasAlqui");
                pA.fechaDevuelt = re.getDate("fechaDevuelt");
                ListPelisAlquiladas.add(pA);
                pA = new peliAquiladas();
            }
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return ListPelisAlquiladas;
    }
    public ArrayList<peliAquiladas> getpeliAquiladas(String id_usua,String id_Peli) {
        ArrayList<peliAquiladas> ListPelisAlquiladas = new ArrayList<peliAquiladas>();
        try {
            ResultSet re = null;
            re = conexion.getPeliAlqui(id_usua,id_Peli);
            peliAquiladas pA = new peliAquiladas();
            while (re.next()) {
                pA.id = re.getInt("id");
                pA.id_usua = re.getString("id_usua");
                pA.nom_usua = SM.findNomUsua(pA.id_usua);
                pA.id_peli = re.getString("id_peli");
                pA.nom_peli = SM.findNomPeli(pA.id_peli);
                pA.cantAlquiPelis = re.getInt("cantAlquiPelis");
                pA.cantPeliTotal = SM.findCantTotalPelis(pA.id_peli);
                pA.fechaAlqui = re.getDate("fechaAlqui");
                pA.diasAlqui = re.getInt("diasAlqui");
                pA.fechaDevuelt = re.getDate("fechaDevuelt");
                ListPelisAlquiladas.add(pA);
                pA = new peliAquiladas();
            }
        } catch (Exception ex) {
            SM.lastError = ex.getMessage();
        }
        conexion.CerrarConexion();
        return ListPelisAlquiladas;
    }
}
